package dao;

import java.util.List;

import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import model.Emprestimo;
import dao.remote.EmprestimoDAORemote;

@Stateless
public class EmprestimoDAO implements EmprestimoDAORemote {
	@PersistenceContext
	EntityManager em;

	public EmprestimoDAO() {
	}

	@Override
	public boolean salvar(Emprestimo emprestimo) {
		try {
			emprestimo.getLivro().setDisponivel(false);
			em.merge(emprestimo.getLivro());
			em.persist(emprestimo);
			return true;
		} catch (Exception e) {
			return false;
		}
	}

	@Override
	public List<Emprestimo> listar() {
		return em.createNamedQuery("Emprestimo.listar", Emprestimo.class)
				.getResultList();
	}

	@Override
	public List<Emprestimo> buscar(String matricula) {
		return em
				.createNamedQuery("Emprestimo.buscarPorMatricula",
						Emprestimo.class).setParameter("matricula", matricula)
				.getResultList();
	}

	public Emprestimo buscar(long id) {
		return em.find(Emprestimo.class, id);
	}

	@Override
	public boolean deletar(Emprestimo emprestimo) {
		try {
			em.remove(emprestimo);
			return true;
		} catch (Exception e) {
			return false;
		}
	}

}
